home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
lists
/
mint
/
l_0399
/
306
< prev
next >
Wrap
Internet Message Format
|
1994-08-27
|
1KB
Date: Sat, 12 Jun 93 12:01:01 -0400
From: dsb@cs.duke.edu (Scott Bigham)
Message-Id: <9306121601.AA23201@amazon.cs.duke.edu>
To: mint@terminator.rs.itd.umich.edu
Subject: Bus error -- core dumped
Hello all. For my first question to the list, I submit the following:
-----------
#include <signal.h>
#include <stdio.h>
void panic(n) int n; {fprintf(stderr, "Received signal %d\n", n); exit(1);}
main()
{
char c, *p=0; __Sigfunc l;
l=signal(SIGBUS, panic); /* catch bus errors */
fprintf(stderr, "%lu\n", (unsigned long)l);
c=*p; /* force a bus error */
}
-----------
which, when compiled with HSC and the MiNTlibs pl30 and run under MiNT
0.95, yields:
-----------
0
pid 41 (hmm): BUS ERROR: User PC=0 (basepage=14f670)
Bus error
-----------
to my great surprise (particularly when cpp started crashing with files
open -- so much for that partition).
If I replace the offending line with a raise(SIGBUS), all works as
expected. Also, I can catch SIGINT and SIGQUIT with no problems.
Now, the signal dispatch table is (I assume) part of the process's state
information, and MiNT knows which process died, so it should have enough
information to invoke my signal handler. So why doesn't it?
-sbigham